home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 10 / AACD 10.iso / AACD / Magazine / Morphos / GCC / os-includeppc / powerup / gcclib / powerup_protos.h
C/C++ Source or Header  |  1998-06-03  |  10KB  |  327 lines

  1. #ifndef POWERUP_GCCLIB_PROTOS_H
  2. #define POWERUP_GCCLIB_PROTOS_H
  3.  
  4. #include <dos/dos.h>
  5. #include <powerup/ppclib/interface.h>
  6. #include <powerup/ppclib/object.h>
  7. #include <utility/tagitem.h>
  8.  
  9. #ifndef  INTUITION_CLASSES_H
  10. #include <intuition/classes.h>
  11. #endif
  12. #ifndef  INTUITION_CLASSUSR_H
  13. #include <intuition/classusr.h>
  14. #endif
  15.  
  16. #include <stdarg.h>
  17.  
  18. APTR    PPCAllocMem( unsigned long byteSize, unsigned long requirements );
  19. void    PPCFreeMem( APTR memoryBlock, unsigned long byteSize );
  20. APTR    PPCAllocVec( unsigned long byteSize, unsigned long requirements );
  21. void    PPCFreeVec( APTR memoryBlock);
  22. BPTR    PPCOutput(void);
  23. BPTR    PPCInput(void);
  24. BPTR    PPCOpen( STRPTR name, long accessMode );
  25. LONG    PPCClose( BPTR file );
  26. LONG    PPCRead( BPTR file, APTR buffer, long length );
  27. LONG    PPCWrite( BPTR file, APTR buffer, long length );
  28. LONG    PPCSeek( BPTR file, long position, long offset );
  29. APTR    PPCCreatePool( unsigned long requirements, unsigned long puddleSize,
  30.     unsigned long threshSize );
  31. BOOL    PPCDeletePool( APTR poolHeader );
  32. APTR    PPCAllocPooled( APTR poolHeader, unsigned long memSize );
  33. void    PPCFreePooled( APTR poolHeader, APTR memory, unsigned long memSize );
  34. APTR    PPCAllocVecPooled( APTR poolHeader, unsigned long memSize );
  35. void    PPCFreeVecPooled( APTR poolHeader, APTR memory);
  36. ULONG    PPCCallOS(struct Caos*);
  37. ULONG    PPCCallM68k(struct Caos*);
  38. ULONG    PPCSignal(void*,ULONG);
  39. ULONG    PPCWait(ULONG);
  40. void    *PPCFindTask(char*);
  41. ULONG    PPCAllocSignal(ULONG);
  42. void    PPCFreeSignal(ULONG);
  43. void    PPCCacheFlush(APTR,ULONG);
  44. void    PPCCacheFlushAll(void);
  45. void    PPCCacheInvalid(APTR,ULONG);
  46. ULONG    PPCSetSignal(ULONG,ULONG);
  47. void    *PPCCreatePort(struct TagItem*);
  48. BOOL    PPCDeletePort(void*);
  49. void    *PPCObtainPort(struct TagItem*);
  50. BOOL    PPCReleasePort(void*);
  51. void    *PPCCreateMessage(void*,
  52.                          ULONG);
  53. void    PPCDeleteMessage(void*);
  54. void    *PPCGetMessage(void*);
  55. ULONG    PPCGetMessageAttr(void*,
  56.                           ULONG);
  57. BOOL    PPCReplyMessage(void*);
  58. BOOL    PPCSendMessage(void*,
  59.                        void*,
  60.                        void*,
  61.                        ULONG,
  62.                        ULONG);
  63. void    *PPCWaitPort(void*);
  64.  
  65. void*    PPCCreatePortList(void**,ULONG);
  66. void    PPCDeletePortList(void*);
  67. BOOL    PPCAddPortList(void*,
  68.                        void*);
  69. void    PPCRemPortList(void*,
  70.                        void*);
  71. void*    PPCWaitPortList(void*);
  72. ULONG    PPCGetPortListAttr(void*,
  73.                            ULONG);
  74. void    PPCSetPortListAttr(void*,
  75.                            ULONG,
  76.                            ULONG);
  77.  
  78. #if !defined(__SASC)
  79. int    strcmp(const char    *,
  80.                const char    *);
  81. char    *strcpy(char        *,
  82.                 const char    *);
  83. int    strlen(const char    *);
  84. #endif
  85.  
  86.  
  87. /*
  88.  * List functions for not shared and shared lists
  89.  *
  90.  */
  91.  
  92. void        PPCInsert(struct List    *,
  93.                           struct Node    *,
  94.                           struct Node    *);
  95. void        PPCAddHead(struct List *,
  96.                            struct Node *);
  97. void        PPCAddTail(struct List *,
  98.                            struct Node *);
  99. void        PPCRemove(struct Node *);
  100. struct Node*    PPCRemHead(struct List *);
  101. struct Node*    PPCRemTail(struct List *);
  102. void        PPCEnqueue(struct List*,
  103.                            struct Node*);
  104. struct Node*    PPCFindName(struct List*,
  105.                             char*);
  106. void        PPCNewList(struct List *);
  107.  
  108.  
  109. void        PPCInsertSync(struct List    *,
  110.                               struct Node    *,
  111.                               struct Node    *);
  112. void        PPCAddHeadSync(struct List *,
  113.                                struct Node *);
  114. void        PPCAddTailSync(struct List *,
  115.                                struct Node *);
  116. void        PPCRemoveSync(struct Node *);
  117. struct Node*    PPCRemHeadSync(struct List *);
  118. struct Node*    PPCRemTailSync(struct List *);
  119. void        PPCEnqueueSync(struct List*,
  120.                                struct Node*);
  121. struct Node*    PPCFindNameSync(struct List*,
  122.                                 char*);
  123.  
  124. struct TagItem*    PPCNextTagItem(struct TagItem**);
  125. struct TagItem*    PPCFindTagItem(Tag,
  126.                                struct TagItem*);
  127. ULONG    PPCGetTagData(Tag,
  128.                       ULONG,
  129.                       struct TagItem *);
  130.  
  131. ULONG    PPCVersion(void);
  132. ULONG    PPCRevision(void);
  133.  
  134. void    PPCReleaseSemaphore(void*);
  135. void    PPCObtainSemaphore(void*);
  136. LONG    PPCAttemptSemaphore(void*);
  137. BOOL    PPCAttemptSemaphoreShared(void*);
  138. void    PPCObtainSemaphoreShared(void*);
  139. void*    PPCCreateSemaphore(struct TagItem*);
  140. void    PPCDeleteSemaphore(void*);
  141. void*    PPCObtainSemaphoreByName(char*);
  142. void*    PPCAttemptSemaphoreByName(char*,
  143.                                   ULONG*);
  144.  
  145. APTR    PPCRawDoFmt(UBYTE*,
  146.                     APTR,
  147.                     void (*)(),
  148.                     APTR);
  149.  
  150. ULONG    PPCGetTaskAttr(ULONG);
  151. void    PPCSetTaskAttr(ULONG,
  152.                        ULONG);
  153.  
  154. void    PPCFinishTask(void);
  155.  
  156. ULONG    PPCGetAttr(ULONG);
  157.  
  158. UBYTE    PPCReadByte(UBYTE*);
  159. UWORD    PPCReadWord(UWORD*);
  160. ULONG    PPCReadLong(ULONG*);
  161.  
  162. void    PPCWriteByte(UBYTE*,UBYTE);
  163. void    PPCWriteWord(UWORD*,UWORD);
  164. void    PPCWriteLong(ULONG*,ULONG);
  165.  
  166. ULONG    PPCCoerceMethodA(struct IClass*,
  167.                          Object*,
  168.                          Msg);
  169.  
  170. ULONG    PPCDoMethodA(Object*,
  171.                      Msg);
  172.  
  173. ULONG    PPCDoSuperMethodA(struct IClass*,
  174.                           Object*,
  175.                           void*);
  176.  
  177. void    PPCkprintf(const char*,
  178.                    ...);
  179.  
  180. int    PPCprintf(const char*,
  181.                   ...);
  182.  
  183. int    PPCsprintf(char*,
  184.                    const char*,
  185.                    ...);
  186.  
  187. void    PPCvkprintf(const char*,
  188.                     va_list);
  189.  
  190. int    PPCvprintf(const char*,
  191.                    va_list);
  192.  
  193. int    PPCvsprintf(char*,
  194.                     const char*,
  195.                     va_list);
  196.  
  197. int    PPCfprintf(BPTR,
  198.                    const char        *FmtString,
  199.                    ...);
  200.  
  201. int    PPCvfprintf(BPTR,
  202.                     const char*,
  203.                     va_list);
  204.  
  205. void    *PPCCreateTask(void*,
  206.                        void*,
  207.                        struct TagItem*);
  208.  
  209. void    *PPCOpenLibrary(void*,
  210.                         struct TagItem*);
  211.  
  212. void    PPCCloseLibrary(void*);
  213. void    *PPCGetLibSymbol(void*,
  214.                          char*);
  215.  
  216.  
  217. void    *PPCLoadObjectTagList(struct TagItem*);
  218. void    *PPCLoadObject(char*);
  219. void    PPCUnLoadObject(void*);
  220. ULONG    PPCGetObjectAttrs(void*,
  221.                           struct PPCObjectInfo*,
  222.                           struct TagItem*);
  223.  
  224. void*    PPCCreateTimerObject(struct TagItem*);
  225. void    PPCDeleteTimerObject(void*);
  226.  
  227. #if !defined(__SASC)
  228. void    PPCSetTimerObject(void*,
  229.                           ULONG,
  230.                           unsigned long long*);
  231.  
  232. void    PPCGetTimerObject(void*,
  233.                           ULONG,
  234.                           unsigned long long*);
  235. #else
  236. void    PPCSetTimerObject(void*,
  237.                           ULONG,
  238.                           ULONG*);
  239.  
  240. void    PPCGetTimerObject(void*,
  241.                           ULONG,
  242.                           ULONG*);
  243. #endif
  244.  
  245.  
  246. #if !defined(__SASC)
  247.  
  248. /* GCC 64bit math support
  249.  * which is needed by the compiler
  250.  */
  251.  
  252. int            __cmpdi2(long long, long long);
  253. long long        __adddi3(long long, long long);
  254. long long        __anddi3(long long, long long);
  255. long long        __ashldi3(long long, unsigned int);
  256. long long        __ashrdi3(long long, unsigned int);
  257. long long        __lshldi3(long long, unsigned int);
  258. long long        __lshrdi3(long long, unsigned int);
  259. int            __cmpdi2(long long, long long );
  260. long long        __divdi3(long long, long long);
  261. long long        __fixdfdi(double);
  262. long long        __fixsfdi(float);
  263. unsigned long long    __fixunsdfdi(double);
  264. unsigned long long    __fixunssfdi(float);
  265. double            __floatdidf(long long);
  266. float            __floatdisf(long long);
  267. double            __floatunsdidf(unsigned long long);
  268. long long        __iordi3(long long, long long);
  269. long long        __moddi3(long long, long long);
  270. long long        __muldi3(long long, long long);
  271. long long        __negdi2(long long);
  272. //long long        __one_cmpldi2(long long);
  273. unsigned long long    __qdivrem(unsigned long long, unsigned long long, unsigned long long *);
  274. long long        __subdi3(long long, long long);
  275. int            __ucmpdi2(unsigned long long, unsigned long long);
  276. unsigned long long    __udivdi3(unsigned long long, unsigned long long );
  277. unsigned long long    __umoddi3(unsigned long long, unsigned long long );
  278. long long        __xordi3(long long, long long);
  279.  
  280. long long    PPCAdd64(long long,long long);
  281. long long    PPCSub64(long long,long long);
  282. long long    PPCNeg64(long long);
  283. BOOL        PPCCmp64(long long,long long);
  284. long long    PPCMulu64(long long,long long);
  285. long long    PPCDivu64(long long,long long);
  286. long long    PPCMuls64(long long,long long);
  287. long long    PPCDivs64(long long,long long);
  288. long long    PPCModu64(long long,long long);
  289. long long    PPCMods64(long long,long long);
  290. long long    PPCLsr64(unsigned long long,unsigned int);
  291. long long    PPCAsl64(long long,unsigned int);
  292. long long    PPCAsr64(long long,unsigned int);
  293. long long    PPCLsr64(unsigned long long,unsigned int);
  294. long long    PPCOr64(unsigned long long,unsigned long long);
  295. long long    PPCXor64(unsigned long long,unsigned long long);
  296. long long    PPCAnd64(unsigned long long,unsigned long long);
  297. long long    PPCDivRem64(long long,long long,long long*);
  298.  
  299. #else
  300.  
  301. /* SAS 64bit support
  302.  * for every long long you get a ptr to a long long
  303.  */
  304. void        PPCAdd64p(int*,int*);
  305. void        PPCSub64p(int*,int*);
  306. void        PPCNeg64p(int*);
  307. BOOL        PPCCmp64p(int*,int*);
  308. void        PPCMulu64p(int*,int*);
  309. void        PPCDivu64p(int*,int*);
  310. void        PPCMuls64p(int*,int*);
  311. void        PPCDivs64p(int*,int*);
  312. void        PPCModu64p(int*,int*);
  313. void        PPCMods64p(int*,int*);
  314. void        PPCLsr64p(unsigned int*,unsigned int);
  315. void        PPCAsl64p(int*,unsigned int);
  316. void        PPCAsr64p(int*,unsigned int);
  317. void        PPCLsl64p(unsigned int*,unsigned int);
  318. void        PPCOr64p(unsigned int*,unsigned int*);
  319. void        PPCXor64p(unsigned int*,unsigned int*);
  320. void        PPCAnd64p(unsigned int*,unsigned int*);
  321.  
  322. void        PPCDivRem64p(int*,int*,int*);
  323.  
  324. #endif
  325.  
  326. #endif
  327.